home *** CD-ROM | disk | FTP | other *** search
- Path: hell.team17.com!news
- From: boberg@team17.com (Stefan Boberg)
- Newsgroups: comp.sys.amiga.programmer,comp.sys.amiga.games,alt.sys.amiga.demos,comp.sys.amiga.misc
- Subject: Re: AB3D II beats Quake....
- Date: Wed, 03 Apr 1996 23:24:03 GMT
- Organization: Team 17 Software Ltd.
- Message-ID: <4jutrg$alh@hell.team17.com>
- References: <DosA8o.17B@info.uucp> <6538.6658T1031T2526@mbox.vol.it> <4jgn4o$l2b@hell.team17.com> <4jk515$q3l@nadine.teleport.com> <4jkdpu$1o6@hell.team17.com> <4joj14$ghj@nadine.teleport.com> <4js275$98s@hell.team17.com> <4jt8bh$a70@nadine.teleport.com> <4ju1qf$k4@hell.team17.com> <4juplu$n44@nadine.teleport.com>
- NNTP-Posting-Host: zonk.team17.com
- X-Newsreader: Forte Free Agent 1.0.82
-
- sschaem@teleport.com (Stephan Schaem) wrote:
-
- >Stefan Boberg (boberg@team17.com) wrote:
- >: sschaem@teleport.com (Stephan Schaem) wrote:
-
- >: Yes. Watcom is very good at allocating registers for inline ASM.
- >: BTW, Id used the same approach in Doom.
-
- > You also need to change your structures? or do you do unions and
- > keep 64bit or more alocated per variable? How about file format?
-
- No. I use typedefs. I have a 'typedef Scalar_t float' (or double if
- you like) or 'typedef Scalar_t uint32' depending on the math type.
- File formats is not really a problem. For my current projects all
- scalars in the data files are actually fixed-point, but are converted
- to floats on loading (if in float math mode).
-
- > To tell you the truth I dont like macro or conditionaly compliled/assembled
- > code for major purposes.
-
- Well that's up to each programmer I suppose. It works fine for me,
- and it's clean.
-
- >: No. In my case, an edge is a reference to two vertices. It could
- >: include slope information though, as a further optimization.
-
- > Then it make sense to get slope information via float on pentium...
- > But do you think that this is why its so slow on 486?
-
- The reason why it's slow is that they use floats everywhere. In the
- geometry pipeline as well as in the rasterization. In addition, since
- they're using a piecewise affine mapping for the textures, they have
- quite a few FDIVs in there as well. None of all this is particularly
- fast on a 486.
-
- > How much speedup do you get by using your fixedpoint macro VS float
- > on a 486 in that rendering function?
-
- I really haven't tried it on a 486 yet. The 3D engine work I've done
- so far is in preparation for my next project, which will have P90 as
- minimum spec machine - so to be honest, I'm not too bothered about
- performance on a 486. It ought to be considerably faster with
- fix-point though, seeing as all floating-point stuff is slow on the
- 486, even more so since my code is optimized for the P5 FPU (boatloads
- of FXCH to keep the multiplier/adders busy).
-
- > I use affine tmapping in my perspective correct texture mapping...
- > I tryed 7 variant, from 3 class out of 6 of perspective correct
- > rendering methode.... I choose one based on affine tmapping.
-
- Yep. Scanline subdivision seems to work best. Free-directional
- mapping can be faster, and is better with mip-maps, but has some ugly
- precision problems. Hyperbolic mapping is kind of neat, but involves
- too many branches. Second-order differences is quite fast, but has
- ugly problems with undershoot/overshoot. Divide-per-pixel is,
- obviously, not good enough for real-time work. What other variants did
- you try (you say 7 variants)?
-
- > Stephan
-
-
- ===============================================================
- Stefan Boberg boberg@team17.com
- "This, like, sucks in ways that we've never seen stuff suck
- before, so it's kinda cool!" - B&B
-
-